/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package frontera.interfaz.panel.herramientas;

import control.filtros.Filtro;
import frontera.interfaz.panel.PanelBusqueda;
import frontera.interfaz.panel.resultados.PanelResultadosSeleccion;
import java.awt.GridLayout;
import java.util.ArrayList;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JPanel;

/**
 *
 * @author tuareg
 */
public class PanelHerramientasBuscarBotones<T> extends PanelHerramientasBuscar<T>{

    public PanelHerramientasBuscarBotones(PanelBusqueda<T> padre, ArrayList<Filtro<T>> filtros, Busqueda comportamientoBuscar, ArrayList<Action> botones, ArrayList<PanelResultadosSeleccion<T>> listeners) {
        super(padre, filtros, comportamientoBuscar);
        this.botones=botones;
        this.panelBotones = new JPanel(new GridLayout(1, botones.size()));
        for (Action boton : botones){
            panelBotones.add(new JButton(boton));
        }
        super.add(panelBotones);
        this.listeners = listeners;
    
    } 
    public PanelHerramientasBuscarBotones(PanelBusqueda<T> padre, ArrayList<Filtro<T>> filtros, Busqueda comportamientoBuscar) {
            super(padre, filtros, comportamientoBuscar);
            panelBotones = new JPanel(new GridLayout());
            super.add(panelBotones);
    }
    public void anadirBoton(Action a){
        botones.add(a);
        panelBotones.setLayout(new GridLayout(1, botones.size()));
        panelBotones.add(new JButton(a));

    }
    @Override
    public void elementosSeleccionados(ArrayList<T> elementos) {
        //Notifique a los botones que estén interesados la selección de elementos
        for (PanelResultadosSeleccion<T> listener : listeners){
            listener.elementosSeleccionados(elementos);
        }
    }

    private ArrayList<Action> botones = new ArrayList<Action>();
    private JPanel panelBotones = new JPanel();
    private ArrayList<PanelResultadosSeleccion<T>> listeners;
}
